<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./OL_SDK/include-openlayers-local.js"></script>
    <script src="./libs/gaode.js"></script>
</head>

<body>
    <button onclick="queryLine()">查询我的某个点图层</button>
    <div id="map">
    </div>
    <script>
        var docLayer = new Zondy.Map.Doc("", "myTestMap1", {

        })
        var map = new ol.Map({
            target: "map",
            layers: [gaode, docLayer],
            view: new ol.View({
                projection: 'EPSG:4326',
                center: [114.30, 30.50],
                zoom: 4
            })
        })
        function queryLine() {
            //1.初始化查询结构对象，设置查询结构包含几何信息
            var queryStruct = new Zondy.Service.QueryFeatureStruct();
            //是否包含几何图形信息
            queryStruct.IncludeGeometry = true;
            //是否包含属性信息
            queryStruct.IncludeAttribute = true;
            //是否包含图形显示参数
            queryStruct.IncludeWebGraphic = false;
            //2.
            var rule = new Zondy.Service.QueryFeatureRule({
                //是否将要素的可见性计算在内
                EnableDisplayCondition: false,
                //是否完全包含
                MustInside: false,
                //是否仅比较要素的外包矩形
                CompareRectOnly: false,
                //是否相交
                Intersect: true
            });
            //3.
            //实例化查询参数对象
            var queryParam = new Zondy.Service.QueryParameter({
                // 此处就不用写对于某图层，进行几何查询，那里的几何对象了。
                // geometry: pointObj,// 不写
                resultFormat: "json",
                struct: queryStruct,
                // rule: rule
                // 这里rule也可以不要// 应该是因为没有几何的限制了，也不需要与几何有关的查询规则
            });
            //设置查询分页号（这个值表示要查的是第几页（从0开始））// 默认是0
            queryParam.pageIndex = 0;
            //设置查询要素数目// 这个值默认是20.表示每页的最大数据数。
            queryParam.recordNumber = 1000
            // 4.
            //实例化地图文档查询服务对象
            // 这里的图层索引可以写一个 4这种形式。也可以写一个数组[0,4]这种形式
            // 如果是一个数组，且数组的长度大于1，则会把查询结果对象以数组的形式，
            // 放到data对象的一个新属性value中。
            var queryService = new Zondy.Service.QueryDocFeature(queryParam, "myTestMap1", [0, 3], {

            });
            //执行查询操作，querySuccess为查询回调函数
            queryService.query(querySuccess);
        }
        function querySuccess(data) {
            console.log(data, "data");
            var format = new Zondy.Format.PolygonJSON();
            let features_res = null;
            if (data.value) {
                // data.value是一个数组
                features_res = data.value.map((item) => format.read(item));
                features_res.isMultiLayers = true;
            } else {
                //将MapGIS要素JSON反序列化为Array<new ol.Feature({})>类型数组
                features_res = format.read(data);
                // console.dir(features_res, "features_res");
            }
            console.log(features_res, "features_res");
            // console.log(features_res.length, "features_res.length");// 2
        }
    </script>
</body>

</html>